package map;

import java.sql.SQLOutput;
import java.util.HashMap;
import java.util.Map;

public class MapDemo1 {
    /**java。utli.Map   查找表
     * Map体现的结构是一个多行两列的表格  其中左列叫Key右侧叫value
     * Map总是以Key-value  成对保存数据
     * Map总是根据Key提取对应的value
     * 要求Key不能重复
     * 是一个接口
     * java.util.HashMap  散列表哈希表   是最常用的Map实现，当今查询速度最快的数据结构
     * java。util。TreeMap:  使用二叉树实现的Map
     *
     * Map和collection都是Java集合框架的成员*/
    public static void main(String[] args) {
        Map<String ,Integer> map= new HashMap<>();
        /**v PUT(K k,V v) 向Map中保存一组键值对
         * 由于Map要求KEY 不允许重复，如果 */
        Integer value = map.put("英语",90);
        System.out.println(value);
        map.put("数学",100);    //添加数据  数学就是 key  100就是value
        map.put("语文",100);
        map.put("音乐",100);
        map.put("物理",90);
        map.put("化学",80);
        value=map.put("英语",80);
        System.out.println(map);
        System.out.println(value);
        System.out.println(map);

        /**    V get (object key )
         * 根据给定的key提取对应的value
         * 如果给定的key再MAP中不存在返回值则返回值为null*/



        value= map.get("语文");
        System.out.println(value);
        value= map.get("体育");
        System.out.println(value);

        /**   int size()
         * 返回当前的中的元素个数，每个元素为一组键值对 */
        int size= map.size();
        System.out.println(
                "size"+size
        );

        /**   V remove(Object  Key)
         * 根据给定的KEY  删除对应的键值对
         * 并且会将该key对应的value返回
         * */


        value=map.remove("数学");
        System.out.println(value);//数学对应的value值:98
        System.out.println(map);





        //是否为空map (map中不含有任何键值对)
        /**boolean containsKey(Object key)
         * boolean containsKey(Object value)
         * 判断当前Map中是否包含指定的key或value
         * 判断包含的标准仍然是依靠equals 方法进行的*/
        boolean isEnmpty= map.isEmpty();
        System.out.println("是否为空map:"+isEnmpty);


        boolean ck = map.containsKey("英语");
        System.out.println("包含key:"+ck);
        ck= map.containsKey("体育");
        System.out.println("包含key:"+ck
        );
        boolean cv = map.containsKey(97);
        System.out.println("包含value:"+cv);
        cv= map.containsValue(98);
        System.out.println("包含value:"+cv);
        //清空Map
        map.clear();
        System.out.println(map);
    }
}